perm filename IO[GEM,BGB]2 blob sn#041571 filedate 1973-05-16 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00017 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	TITLE IO - GEM INPUT/OUTPUT - BGB - FEBRUARY 1973.
C00005 00003	SUBR(PLOTO)-------------------------------------------------------
C00006 00004	SUBR(GETFIL)EXTENSION --------------------------------------------
C00008 00005	SUBR GETCHW
C00011 00006	SUBR(SERIAL)BODY -------------------------------------------------
C00013 00007	SUBR(OFEV)BODY ---------------------------------------------------
C00015 00008	SUBR OFORM0
C00016 00009	SUBR(OFORM1)BODY -------------------------------------------------
C00017 00010	SUBR(ICAM)--------------------------------------------------------
C00019 00011	SUBR(OCAM)--------------------------------------------------------
C00021 00012	SUBR(IFEV)BODY ---------------------------------------------------
C00023 00013	SUBR(IBODY)B0 ----------------------------------------------------
C00025 00014	SUBR IFORM0
C00026 00015	SUBR(IFORM1)------------------------------------------------------
C00027 00016	SUBR IFORM2
C00028 00017	SUBR(INCRE)-------------------------------------------------------
C00030 ENDMK
C⊗;
TITLE IO - GEM INPUT/OUTPUT - BGB - FEBRUARY 1973.

EXTERN MKB,MKF,MKE,MKV,MKFRAME,BATT
INTERN MACPTR,MACCNT,MACNOD,FILFLG

	↓CMDCHN←←16
	↓IODEND←20000

	FILNAM:0	;FILE NAME.
	EXTION:0↔0	;EXTENSION.
	PPPN:0		;PROJECT-PROGRAMMER.
	
	OBUF:BLOCK 3	;OUTPUT BUFFER HEADER.
	IBUF:BLOCK 3	;INPUT BUFFER HEADER.
	CMDHDR:	BLOCK 3	;COMMAND BUFFER HEADER
	MACPTR:	BLOCK 1
	MACCNT:	BLOCK 1
	MACNOD:	BLOCK 1	;IF NON-ZERO, ADDRESS OF TEXT NODE
	FILFLG:	BLOCK 1	;COMMAND FILE
	EOF:0		;END OF FILE FLAG.

	CMDBUF:	BLOCK 2*(201+2)

	BLOCK 3
	BFRAME:BLOCK 9	;BODY FRAME BUFFER.
	
	PCNT:0		;PARTS COUNT.
	FCNT:0		;FACE COUNT.
	ECNT:0		;EDGE COUNT.
	VCNT:0		;VERTEX COUNT.

SUBR(WORDO)WORD --------------------------------------------------
BEGIN WORDO; WORD OUTPUT - BGB - 18 FEBRUARY 1973.
	LAC ARG1
	SOSG OBUF+2
	OUT 1,0
	GO[IDPB 0,OBUF+1↔POP1J]
	FATAL(WORDO)
BEND;2/18/73-------------------------------------------------------

WORDIN: ;----------------------------------------------------------
BEGIN WORDIN; WORD INPUT TO AC0 - BGB - 18 FEBRUARY 1973.
	SOSG IBUF+2
	IN 1,0
	GO[ILDB 0,IBUF+1↔POP0J]
	STATO 1,1B22
	GO[FATAL(WORDIN)]
	SETOM EOF
	POP0J
BEND;2/18/73-------------------------------------------------------
SUBR(PLOTO)-------------------------------------------------------
BEGIN PLOTO;DISPLAY BUFFER TO DISK FILE - BGB 10 DEC 1972.
	EXTERN DPYBUF,GEODPY
	CALL(GEODPY)
	CALL(GETFIL,[SIXBIT/PLT/])↔POP0J
	LAC 1,DPYBUF↔LACN(1)1↔SUBI 2
	CDR 2,(1)↔SETZM 1(2)
	MOVS↔LAPI -1(1)↔DAC DUMLST
	INIT 1,17↔SIXBIT/DSK/↔0↔HALT
	ENTER 1,FILNAM↔GO .+4
	OUT 1,DUMLST↔JFCL
	OUTSTR[ASCIZ"	EOF.
"]↔	RELEASE 1,
	POP0J
DUMLST:	0↔0
BEND;12/10/72------------------------------------------------------
SUBR(GETFIL)EXTENSION --------------------------------------------
BEGIN GETFIL;SETUP FILE SPEC FROM TTY LINE - BGB - 10 DEC 72.

	SETZM FILNAM
	SETZM EXTION
	SETZM EXTION+1
	SETZM PPPN

	OUTSTR[ASCIZ/	FILE = /]
	LAC 1,[POINT 6,FILNAM,-1]↔LACI 2,6
	CALL(GETCL0)↔CAIL"a"↔SUBI 40
	CAIN 15↔GO[INCHWL↔POP1J]↔AOSA(P)

L:	CALL(GETCL0)↔CAIL"a"↔SUBI 40
	CAIN"."↔GO[SETZM ARG1↔LAC 1,[POINT 6,EXTION,-1]↔LACI 2,3↔GO L]
	CAIN"["↔GO[LAC 1,[POINT 6,PPPN,-1]  ↔LACI 2,3↔GO L]
	CAIN","↔GO[LAC 1,[POINT 6,PPPN,17]  ↔LACI 2,3↔GO L]
	CAIN"]"↔GO L

	CAIN 15↔GO EOL			;END OF THE LINE.
	CAIN 12↔GO EOL
	CAIG" "↔GO L	;IGNORE GARBAGE.
	SOJL 2,L
	SUBI 40↔IDPB 1↔GO L	;ASCII TO SIXBIT.

EOL:	CALL(GETCL0)
	CAR PPPN
	TRNN 77↔LSH -6↔TRNN 77↔LSH -6    ;RIGHT ADJUST PROJECT.
	DIP PPPN
	CDR PPPN
	TRNN 77↔LSH -6↔TRNN 77↔LSH -6    ;RIGHT ADJUST PROGRAMMER.
	DAP PPPN
	SKIPN 1,EXTION↔LAC 1,ARG1↔DAC 1,EXTION ;DEFAULT EXTENSION.
	POP1J
BEND;2/18/73-------------------------------------------------------
SUBR GETCHW
	SETZ 1,
	SKIPN FILFLG
	SKIPE MACNOD
	CALL(MACGET)
	JUMPN 1,[POP0J]
	INCHRW 1
	POP0J
;8-MAY-73(TVR)
SUBR GETCHL
	SETZ 1,
	SKIPN FILFLG
	SKIPE MACNOD
	CALL(MACGET)
	JUMPN 1,[POP0J]
	INCHWL 1
	POP0J
;8-MAY-73(TVR)
SUBR MACGET
	PUSH P,2
	SETZ 2,
	SKIPE MACNOD
	CALL(MACCHR)
	SKIPE FILFLG
	CALL(FILCHR)
	SETZ 1,
	CAIN 1,"α"
	GO [ TRO 2,200
	     GO MACGE2 ]
	CAIN 1,"β"
	GO [ TRO 2,400
	     GO MACGE2 ]
	CAIN 1,"ε"
	GO [ TRO 2,600
	     GO MACGE2 ]
	JUMPN 2,MACGE2
	CAIN 1,"≡"
	GO MACGE2
MACGE1:	POP P,2
	POP0J
MACGE2:	SKIPE MACNOD
	CALL(MACCHR)
	SKIPE FILFLG
	CALL(FILCHR)
	SETZ 1,
	OR 1,2
	GO MACGE1
;8-MAY-73(TVR)
SUBR FILCHR
	SOSG CMDHDR+2
	IN CMDCHN,
	GO [ ILDB 1,CMDHDR+1
	     JUMPE 1,FILCHR
	     AOS(P)
	     POP0J ]
	STATO CMDCHN,IODEND
	FATAL(READ ERROR IN COMMAND FILE)
	RELEASE CMDCHN,
	OUTSTR[ASCIZ/<COMMAND FILE EOF>/]
	SETZM FILFLG
	POP0J
;8-MAY-73(TVR)
SUBR MACCHR			;This routine is experimental
	MOVEI 1,3
	ADDM 1,(P)
MCLOOP:	SOSLE MACCNT
	GO [ ILDB 1,MACPTR
	     JUMPE 1,MCLOOP
	     POP0J ]
	MOVE 1,MACNOD
	TCCW 1,1
	SKIPN 1
	OUTSTR[ASCIZ/<LEAVING MACRO>
/]
	MOVEM 1,MACNOD
	HRLI 1,000700
	MOVEM 1,MACPTR
	MOVEI 1,5*8-1
	MOVEM 1,MACCNT
	MOVEI 1,15
	POP0J
;12-MAY-73(TVR)

;THE FOLLOW CROCK HAS BEEN INTRODUCED IN THE INTEREST OF EASIER CONVERSION
SUBR GETCL0
	MOVE 0,1	;SAVE AC.0
	CALL(GETCHL)
	EXCH 0,1
	POP0J
SUBR GETCW0
	MOVE 0,1	;SAVE AC.0
	CALL(GETCHW)
	EXCH 0,1
	POP0J
SUBR(SERIAL)BODY -------------------------------------------------
BEGIN SERIAL; SERIAL NUMBER THE ALT LINKS OF A BODY.

	LAC 1,ARG1↔TEST 1,BBIT↔POP1J

;COUNT FACES, EDGES, AND VERTICES.
	LACI 1↔PFACE 1,1↔ALT. 0,1↔CAME 1,ARG1↔AOJA .-3↔SOS↔DAC FCNT
	LACI 1↔PED   1,1↔ALT. 0,1↔CAME 1,ARG1↔AOJA .-3↔SOS↔DAC ECNT
	LACI 1↔PVT   1,1↔ALT. 0,1↔CAME 1,ARG1↔AOJA .-3↔SOS↔DAC VCNT

;COUNT PARTS.
	SETZ↔SON 1,1↔DAC 1,2↔JUMPE 1,.+5↔AOS
	BRO 2,2↔CAME 1,2↔AOJA .-2
	DAC PCNT

;OUTPUT BODY HEADER.
	CALL(WORDO,PCNT)
	CALL(WORDO,FCNT)
	CALL(WORDO,ECNT)
	CALL(WORDO,VCNT)
	LAC 1,ARG1
	CALL(WORDO,{-2(1)})	;PNAME.
	CALL(WORDO,{-1(1)})	;PNAME.

;BODIES LOCATION ORIENTATION MATRIX.
	FRAME 1,1↔SKIPN 1↔LACI 1,L2
	LACI 2,=12↔SUBI 1,3
L1:	CALL(WORDO,{(1)})↔AOS 1↔SOJG 2,L1
	POP1J
	BLOCK 3		;EMPTY FRAME.
L2:	BLOCK 9
BEND;2/18/73-------------------------------------------------------
SUBR(OFEV)BODY ---------------------------------------------------
BEGIN OFEV; OUTPUT THE FEV OF A BODY - BGB - 18 FEBRUARY 1973.
	LAC 1,ARG1
L1:	PFACE 1,1↔CAMN 1,ARG1↔GO L2
	PUSH P,QQ(1)↔CALL(WORDO)	;FIRST FACE DATA WORD.
	PUSH P,QQ(1)↔CALL(WORDO)	;SECOND FACE DATA WORD.
	GO L1

L2:	PED 1,1↔CAMN 1,ARG1↔GO L3	;OUTPUT EDGE NODES.
	NFACE 2,1↔ALT 2,2↔DIP 2,0
	PFACE 2,1↔ALT 2,2↔DAP 2,0↔CALL(WORDO,0)
	NVT   2,1↔ALT 2,2↔DIP 2,0
	PVT   2,1↔ALT 2,2↔DAP 2,0↔CALL(WORDO,0)
	NCW   2,1↔ALT 2,2↔DIP 2,0
	PCW   2,1↔ALT 2,2↔DAP 2,0↔CALL(WORDO,0)
	NCCW  2,1↔ALT 2,2↔DIP 2,0
	PCCW  2,1↔ALT 2,2↔DAP 2,0↔CALL(WORDO,0)
	GO L2

L3:	PVT 1,1↔CAMN 1,ARG1↔POP1J	;OUTPUT VERTEX NODES.
	CALL(WORDO,{XWC(1)})
	CALL(WORDO,{YWC(1)})
	CALL(WORDO,{ZWC(1)})
	GO L3
BEND;2/18/73-------------------------------------------------------

SUBR(OBODY)BODY --------------------------------------------------
BEGIN OBODY; OUTPUT BODY AND ITS PARTS - BGB - 18 FEBRUARY 1973.

	ACCUMULATORS{N,B}
	CALL(SERIAL,ARG1)
	CALL(OFEV,ARG1)
	LAC B,ARG1
	SON N,B↔JUMPE N,L2
L1:	PUSH P,N↔CALL(OBODY,N)
	POP P,N↔LAC B,ARG1
	BRO N,N↔SON 0,B
	CAME 0,N↔GO L1
L2:	POP1J

BEND;2/18/73-------------------------------------------------------
SUBR OFORM0
BEGIN OFORM0; OUTPUT COMMANDS - BGB - 18 FEBRUARY 1973.
	EXTERN UNIVERSE,COMPAC
	ACCUMULATORS{U}
L1:	CALL(GETFIL,[SIXBIT/D3D/])↔POP0J
	INIT 1,17↔SIXBIT/DSK/↔XWD OBUF,0↔HALT
	ENTER 1,FILNAM↔GO[
		RELEASE 1,
		OUTSTR[ASCIZ/ ENTER FAILED./]
		CRLF↔POP0J]
	CALL(COMPACT)
	MOVE U,UNIVERSE
	HRRZI 0,-3(U)
	HRRZM 0,1(U)		;SET RELOCATION CONSTANT
	SOS 0
	MOVN 1,44
	ADD 1,0
	HRLI 0,(1)
	SETZ 1,
	OUT 1,0
	JRST L2
	FATAL<WRITE ERROR!> ]
L2:	RELEASE 1,
	OUTSTR[ASCIZ/	EOF.
*/]↔	POP0J
BEND OFORM0;2/18/73-------------------------------------------------------
SUBR(OFORM1)BODY -------------------------------------------------
BEGIN OFORM1; OUTPUT COMMANDS - BGB - 18 FEBRUARY 1973.
	EXTERN DPYBUF
	LAC 1,ARG1↔TEST 1,BBIT↔POP1J
L1:	CALL(GETFIL,[SIXBIT/B3D/])↔POP1J
	INIT 1,10↔SIXBIT/DSK/↔XWD OBUF,0↔HALT
	ENTER 1,FILNAM↔GO[
		RELEASE 1,
		OUTSTR[ASCIZ/ ENTER FAILED./]
		CRLF↔POP1J]

;SETUP OUTPUT BUFFERS.
	PUSH P,121
	LAC DPYBUF↔DAC 121
	OUTBUF 1,

;OUTPUT TRANSFER.
	CALL(OBODY,ARG2)

;END OF FILE.
	RELEASE 1,
	OUTSTR[ASCIZ/	EOF.
*/]↔	POP P,121↔POP1J
BEND;2/18/73-------------------------------------------------------
SUBR(ICAM)--------------------------------------------------------
BEGIN ICAM; INPUT CAMERA - BGB - 21 FEBRUARY 1973.
	EXTERN CAMERA
	TDZA 1,1
L1:	RELEASE 1,↔CALL(GETFIL,[SIXBIT/CAM/])↔GO[SETZ 1,↔POP0J]
	INIT 1,10↔SIXBIT/DSK/↔IBUF↔HALT
	LOOKUP 1,FILNAM↔GO L1
	PUSH P,121↔LAC DPYBUF↔DAC 121↔INBUF 1,
;INPUT TRANSFER.
	LAC 10,CAMERA
	CALL(WORDIN)↔DAC -3(10)
	CALL(WORDIN)↔DAC -2(10)
	CALL(WORDIN)↔DAC -1(10)
	CALL(WORDIN)↔DAC  1(10)
	CALL(WORDIN)↔DAC  2(10)
	CALL(WORDIN)↔DAC  3(10)
	FRAME 10,10↔SUBI 10,3↔LACI 7,=12
L2:	CALL(WORDIN)↔DAC (10)↔AOS 10↔SOJG 7,L2

;END OF FILE.
	RELEASE 1,↔POP P,121
	OUTSTR[ASCIZ/	EOF.
*/]↔	POP0J
BEND;2/21/73-------------------------------------------------------
SUBR(OCAM)--------------------------------------------------------
BEGIN OCAM; OUTPUT CAMERA - BGB - 21 FEBRUARY 1973.
	EXTERN DPYBUF,CAMERA
L1:	CALL(GETFIL,[SIXBIT/CAM/])↔POP0J
	INIT 1,10↔SIXBIT/DSK/↔XWD OBUF,0↔HALT
	ENTER 1,FILNAM↔GO[RELEASE 1,
	OUTSTR[ASCIZ/ ENTER FAILED./]↔CRLF↔POP0J]
	PUSH P,121↔LAC DPYBUF↔DAC 121↔OUTBUF 1,
;OUTPUT TRANSFER.
	LAC 1,CAMERA
	CALL(WORDO,{-3(1)})
	CALL(WORDO,{-2(1)})
	CALL(WORDO,{-1(1)})
	CALL(WORDO,{1(1)})
	CALL(WORDO,{2(1)})
	CALL(WORDO,{3(1)})
	FRAME 1,1↔SUBI 1,3↔LACI 2,=12
L2:	CALL(WORDO,{(1)})↔AOS 1↔SOJG 2,L2
	RELEASE 1,↔OUTSTR[ASCIZ/	EOF.
*/]↔	POP P,121↔POP0J
BEND;2/18/73-------------------------------------------------------
SUBR(IFEV)BODY ---------------------------------------------------
BEGIN IFEV; INPUT THE FEV OF A BODY - BGB - 18 FEBRUARY 1973.
	ACCUMULATORS{F,E,V,A,I,J,FACE,EDGE,VERTEX}

;SETUP BASE POINTER TO SERIAL TABLES.
	SLACI I↔LAP 121
	DAC FACE↔DAC EDGE↔DAC VERTEX
	ADD VERTEX,FCNT
	
;MAKE AND INPUT FACES.
	LACI I,1
L1:	CALL(MKF,ARG1)↔DAC 1,@FACE
	CALL(WORDIN)↔DAC QQ(1)
	CALL(WORDIN)↔DAC QQ(1)
	CAME I,FCNT↔AOJA I,L1

;MAKE AND INPUT EDGES.
	LACI I,1
L2:	CALL(MKE,ARG1)↔DIP 1,@EDGE
	CALL(WORDIN)↔DAC 1(1)
	CALL(WORDIN)↔DAC 3(1)
	CALL(WORDIN)↔DAC 4(1)
	CALL(WORDIN)↔DAC 5(1)
	CAME I,ECNT↔AOJA I,L2

;MAKE AND INPUT VERTICES.
	LACI I,1
L3:	CALL(MKV,ARG1)↔DAP 1,@VERTEX
	CALL(WORDIN)↔DAC XWC(1)
	CALL(WORDIN)↔DAC YWC(1)
	CALL(WORDIN)↔DAC ZWC(1)
	CAME I,VCNT↔AOJA I,L3

;CONVERT SERIAL NUMBERS TO NODE ADDRESSES.
	LACI J,1
L4:	LAC I,J↔CAR E,@EDGE

	NFACE I,E↔CDR F,@FACE↔NFACE. F,E↔PED. E,F
	PFACE I,E↔CDR F,@FACE↔PFACE. F,E↔PED. E,F
	NVT I,E↔CDR V,@VERTEX↔NVT. V,E↔PED. E,V
	PVT I,E↔CDR V,@VERTEX↔PVT. V,E↔PED. E,V
	NCW I,E↔CAR A,@EDGE↔NCW. A,E
	PCW I,E↔CAR A,@EDGE↔PCW. A,E
	NCCW I,E↔CAR A,@EDGE↔NCCW. A,E
	PCCW I,E↔CAR A,@EDGE↔PCCW. A,E
	CAME J,ECNT↔AOJA J,L4↔POP1J
BEND;2/18/73-------------------------------------------------------
SUBR(IBODY)B0 ----------------------------------------------------
BEGIN IBODY; INPUT BODY AND ITS PARTS - BGB - 18 FEBRUARY 1973.
	ACCUMULATORS{N,B,B0}

;INPUT BODY HEADER.

	CALL(WORDIN)↔DAC PCNT
	CALL(WORDIN)↔DAC FCNT
	CALL(WORDIN)↔DAC ECNT
	CALL(WORDIN)↔DAC VCNT

;INPUT THE FEV SHELL OF THIS BODY.

	SETQ(B1,{MKB,ARG1})
	LAC B0,ARG1
	JUMPN B0,[CALL(BATT,B1,B0)↔GO .+1]
	LAC B,B1
	CALL(WORDIN)↔DAC -2(B)	;PNAME.
	CALL(WORDIN)↔DAC -1(B)	;PNAME.

;INPUT THE LOCATION ORIENTATION OF THIS BODY.

	LACI 1,BFRAME-3↔LACI 2,=12↔SETZ 4,
L1:	CALL(WORDIN)↔DAC(1)↔IORM 4↔AOS 1↔SOJG 2,L1
	SKIPE 1,4↔CALL(MKFRAME)
	FRAME. 1,B↔JUMPE 1,.+4
	SLACI BFRAME-3↔LAPI XWC(1)↔BLT KZ(1)
	CALL(IFEV,B)
	LAC B,B1↔SKIPN ARG1↔DAC B,ARG1 ;RETURN VALUE TO TOP LEVEL.

;INPUT THE PARTS OF THIS BODY.
L2:	SOSGE PCNT↔POP0J
	PUSH P,PCNT↔PUSH P,B
	CALL(IBODY)
	POP P,B↔POP P,PCNT↔GO L2
B1:0
BEND;2/18/73-------------------------------------------------------
SUBR IFORM0
BEGIN IFORM0
	EXTERN UNIVERSE,RELOCATE,INVALID
L1:	CALL(GETFIL,[SIXBIT/D3D/])↔POP0J
	INIT 1,17↔SIXBIT/DSK/↔XWD OBUF,0↔HALT
	LOOKUP 1,FILNAM↔GO[
		RELEASE 1,
		OUTSTR[ASCIZ/ FILE NOT FOUND./]
		CRLF↔POP1J]
	MOVE 0,UNIVERSE
	SUBI 0,4
	HLRE 1,PPPN
	SUBM 0,1
	CORE 1,
	FATAL<NOT ENOUGH CORE FOR DATA STRUCTURE.>
	HLL 0,PPPN
	SETZ 1,
	SETOM INVALID
	IN 1,0
	JRST L2
	FATAL<READ ERROR!> ]
L2:	RELEASE 1,
	MOVE 1,UNIVERS
	SUBI 1,3
	SUB 1,3+1(1)
	JUMPE 1,L3
	CALL(RELOCATE,1)
L3:	OUTSTR[ASCIZ/	EOF.
*/]↔	POP0J
BEND IFORM0
SUBR(IFORM1)------------------------------------------------------
BEGIN IFORM1; INPUT FORMAT TYPE 1 - BGB - 18 FEBRUARY 1973.
	TDZA 1,1
L1:	RELEASE 1,
	CALL(GETFIL,[SIXBIT/B3D/])↔GO[SETZ 1,↔POP0J]
	INIT 1,10↔SIXBIT/DSK/↔IBUF↔HALT
	LOOKUP 1,FILNAM↔GO L1

;SETUP INPUT BUFFERS.
	PUSH P,121
	LAC DPYBUF↔DAC 121
	INBUF 1,

;INPUT TRANSFER.
	CALL(IBODY,[0])↔POP P,1

;END OF FILE.
	RELEASE 1,
	POP P,121
	OUTSTR[ASCIZ/	EOF.
*/]↔	POP0J
BEND;2/18/73-------------------------------------------------------
SUBR IFORM2
BEGIN IFORM2; INPUT FORMAT TYPE 2 - BGB - 18 FEBRUARY 1973.
	TDZA 1,1
L1:	RELEASE CMDCHN,
	CALL(GETFIL,[SIXBIT/GEO/])↔GO[SETZ 1,↔POP0J]
	INIT CMDCHN,0↔SIXBIT/DSK/↔CMDHDR↔HALT
	LOOKUP CMDCHN,FILNAM↔GO L1

;SETUP INPUT BUFFERS.
	PUSH P,121
	LACI CMDBUF↔DAC 121
	INBUF CMDCHN,
	POP P,121

	OUTSTR[ASCIZ/<OPENING COMMAND FILE>
/]↔
	SETOM FILFLG
	POP0J
BEND;2/18/73-------------------------------------------------------
SUBR(INCRE)-------------------------------------------------------
BEGIN INCRE; INPUT CRE NODES.

;FILE NAME ENTER FROM TTY.
	%←←1B18
L1:	CALL(GETFIL,[SIXBIT/CRE/])↔POP0J
	INIT 1,17↔SIXBIT/DSK/↔0↔HALT
	LOOKUP 1,FILNAM↔GO L1

;DUMP COMMAND WORD.
	LAC PPPN
	LAPI %-1
	DAC INARG

;CREATE UPPER SEGMENT.
	MOVS PPPN↔MOVMS↔ADDI %
	IORI 1777
	CORE2↔HALT

;INPUT TRANSFER.
	IN 1,INARG
	RELEASE 1,
	OUTSTR[ASCIZ"	EOF.
*"]↔	CALL(MKIMGS)↔EXTERN MKIMGS
	DAC 1,TMP1#
;	CALL MKWINDOW↔EXTERN MKWINDOW
;	DAC 1,TMP2#
;	LAC 2,TMP1↔ALT2. 2,1	;ATTACH IMAGE TO WINDOW.
;	CALL MKCAMERA↔EXTERN MKCAMERA
;	LAC 2,TMP2↔ALT. 1,2	;ATTACH CAMERA TO WINDOW.
;KILL UPPER SEGMENT.
	SETZ
	CORE2
	HALT
	POP0J
INARG:0↔0
BEND INCRE; BGB 14 MARCH 1973 -------------------------------------

END